package com.ruoyi.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 佣金明细对象 jt_commission_detail
 * 
 * @author Alan Zhang
 * @date 2025-03-29
 */
public class JtCommissionDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 佣金明细id */
    private Long detailId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 订单ID */
    @Excel(name = "订单ID")
    private Long orderId;

    /** 来源订单号 */
    @Excel(name = "来源订单号")
    private String orderNo;
    @Excel(name = "订单金额")
    private BigDecimal orderAmount;
    /** 余额 */
    @Excel(name = "余额")
    private BigDecimal balance;
    /** 佣金 */
    @Excel(name = "佣金")
    private BigDecimal amount;

    /** 货币 */
    @Excel(name = "货币")
    private String currency;

    /** 状态（1 收入 2提现） */
    @Excel(name = "状态", readConverterExp = "1=,收=入,2=提现")
    private Integer status;

    /** 提现账号 */
    @Excel(name = "提现账号")
    private String withdrawalAccount;

    /** 提现姓名 */
    @Excel(name = "提现姓名")
    private String withdrawalName;

    /** 交易单号 */
    @Excel(name = "交易单号")
    private String transactionNumber;

    /** 付款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentTime;

    /** 提现状态（1 成功 2失败） */
    @Excel(name = "提现状态", readConverterExp = "1=成功,2=失败")
    private Integer withdrawalStatus;

    public void setDetailId(Long detailId) 
    {
        this.detailId = detailId;
    }

    public Long getDetailId() 
    {
        return detailId;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public BigDecimal getBalance() {
        return balance;
    }

    public void setBalance(BigDecimal balance) {
        this.balance = balance;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public void setCurrency(String currency)
    {
        this.currency = currency;
    }

    public String getCurrency() 
    {
        return currency;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setWithdrawalAccount(String withdrawalAccount) 
    {
        this.withdrawalAccount = withdrawalAccount;
    }

    public String getWithdrawalAccount() 
    {
        return withdrawalAccount;
    }

    public void setWithdrawalName(String withdrawalName) 
    {
        this.withdrawalName = withdrawalName;
    }

    public String getWithdrawalName() 
    {
        return withdrawalName;
    }

    public void setTransactionNumber(String transactionNumber) 
    {
        this.transactionNumber = transactionNumber;
    }

    public String getTransactionNumber() 
    {
        return transactionNumber;
    }

    public void setPaymentTime(Date paymentTime) 
    {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime() 
    {
        return paymentTime;
    }

    public void setWithdrawalStatus(Integer withdrawalStatus) 
    {
        this.withdrawalStatus = withdrawalStatus;
    }

    public Integer getWithdrawalStatus() 
    {
        return withdrawalStatus;
    }

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("detailId", getDetailId())
            .append("userId", getUserId())
            .append("orderId", getOrderId())
            .append("balance", getBalance())
            .append("amount", getAmount())
            .append("currency", getCurrency())
            .append("status", getStatus())
            .append("withdrawalAccount", getWithdrawalAccount())
            .append("withdrawalName", getWithdrawalName())
            .append("transactionNumber", getTransactionNumber())
            .append("paymentTime", getPaymentTime())
            .append("withdrawalStatus", getWithdrawalStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
